home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / Displays.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  24KB  |  555 lines

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __DISPLAYS__
  19. #define __DISPLAYS__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __COMPONENTS__
  25. #include <Components.h>
  26. #endif
  27. #ifndef __VIDEO__
  28. #include <Video.h>
  29. #endif
  30. #ifndef __APPLEEVENTS__
  31. #include <AppleEvents.h>
  32. #endif
  33. #ifndef __WINDOWS__
  34. #include <Windows.h>
  35. #endif
  36. #ifndef __EVENTS__
  37. #include <Events.h>
  38. #endif
  39. #ifndef __PROCESSES__
  40. #include <Processes.h>
  41. #endif
  42. #ifndef __DIALOGS__
  43. #include <Dialogs.h>
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT_SUPPORTED
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_ALIGN_SUPPORTED
  55. #pragma options align=mac68k
  56. #endif
  57.  
  58. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  59.  
  60. enum {
  61.                                                                 /* AppleEvents Core Suite */
  62.     kAESystemConfigNotice        = 'cnfg',                        /* Core Suite types */
  63.     kAEDisplayNotice            = 'dspl',
  64.     kAEDisplaySummary            = 'dsum',
  65.     keyDMConfigVersion            = 'dmcv',
  66.     keyDMConfigFlags            = 'dmcf',
  67.     keyDMConfigReserved            = 'dmcr',
  68.     keyDisplayID                = 'dmid',
  69.     keyDisplayComponent            = 'dmdc',
  70.     keyDisplayDevice            = 'dmdd',
  71.     keyDisplayFlags                = 'dmdf',
  72.     keyDisplayMode                = 'dmdm',
  73.     keyDisplayModeReserved        = 'dmmr',
  74.     keyDisplayReserved            = 'dmdr',
  75.     keyDisplayMirroredId        = 'dmmi',
  76.     keyDeviceFlags                = 'dddf',
  77.     keyDeviceDepthMode            = 'dddm',
  78.     keyDeviceRect                = 'dddr',
  79.     keyPixMapRect                = 'dpdr',
  80.     keyPixMapHResolution        = 'dphr',
  81.     keyPixMapVResolution        = 'dpvr',
  82.     keyPixMapPixelType            = 'dppt',
  83.     keyPixMapPixelSize            = 'dpps',
  84.     keyPixMapCmpCount            = 'dpcc',
  85.     keyPixMapCmpSize            = 'dpcs',
  86.     keyPixMapAlignment            = 'dppa',
  87.     keyPixMapResReserved        = 'dprr',
  88.     keyPixMapReserved            = 'dppr',
  89.     keyPixMapColorTableSeed        = 'dpct',
  90.     keySummaryMenubar            = 'dsmb',
  91.     keySummaryChanges            = 'dsch',
  92.     keyDisplayOldConfig            = 'dold',
  93.     keyDisplayNewConfig            = 'dnew'
  94. };
  95.  
  96.  
  97. enum {
  98.     dmOnlyActiveDisplays        = true,
  99.     dmAllDisplays                = false
  100. };
  101.  
  102.  
  103. enum {
  104.                                                                 /* Switch Flags */
  105.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  106.     kDepthNotAvailableBit        = 1,                            /* Current depth not available in new mode */
  107.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  108.     kModeNotResizeBit            = 4,                            /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  109.     kNeverShowModeBit            = 5                                /* This mode should not be shown in the user interface. */
  110. };
  111.  
  112. /*
  113.     Summary Change Flags (sticky bits indicating an operation was performed)
  114.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  115. */
  116.  
  117. enum {
  118.     kBeginEndConfigureBit        = 0,
  119.     kMovedDisplayBit            = 1,
  120.     kSetMainDisplayBit            = 2,
  121.     kSetDisplayModeBit            = 3,
  122.     kAddDisplayBit                = 4,
  123.     kRemoveDisplayBit            = 5,
  124.     kNewDisplayBit                = 6,
  125.     kDisposeDisplayBit            = 7,
  126.     kEnabledDisplayBit            = 8,
  127.     kDisabledDisplayBit            = 9,
  128.     kMirrorDisplayBit            = 10,
  129.     kUnMirrorDisplayBit            = 11
  130. };
  131.  
  132.  
  133. enum {
  134.                                                                 /* Notification Messages for extended call back routines */
  135.     kDMNotifyInstalled            = 1,                            /* At install time */
  136.     kDMNotifyEvent                = 2,                            /* Post change time */
  137.     kDMNotifyRemoved            = 3,                            /* At remove time */
  138.     kDMNotifyPrep                = 4,                            /* Pre change time */
  139.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  140.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  141.     kDMNotifySuspendConfigure    = 7,                            /* Temporary end of configuration */
  142.     kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
  143.                                                                 /* Notification Flags */
  144.     kExtendedNotificationProc    = (1L << 16)
  145. };
  146.  
  147. /* types for notifyType */
  148.  
  149. enum {
  150.     kFullNotify                    = 0,                            /* This is the appleevent whole nine yards notify */
  151.     kFullDependencyNotify        = 1                                /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  152. };
  153.  
  154. /* DisplayID/DeviceID constants */
  155.  
  156. enum {
  157.     kDummyDeviceID                = 0x00FF,                        /* This is the ID of the dummy display, used when the last ``real'' display is disabled.*/
  158.     kInvalidDisplayID            = 0x0000,                        /* This is the invalid ID*/
  159.     kFirstDisplayID                = 0x0100
  160. };
  161.  
  162.  
  163. enum {
  164.                                                                 /* bits for panelListFlags */
  165.     kAllowDuplicatesBit            = 0
  166. };
  167.  
  168.  
  169. enum {
  170.                                                                 /* bits for nameFlags */
  171.     kSuppressNumberBit            = 0,
  172.     kSuppressNumberMask            = 1,
  173.     kForceNumberBit                = 1,
  174.     kForceNumberMask            = 2,
  175.     kSuppressNameBit            = 2,
  176.     kSuppressNameMask            = 4
  177. };
  178.  
  179. /* Constants for fidelity checks */
  180.  
  181. enum {
  182.     kNoFidelity                    = 0,
  183.     kMinimumFidelity            = 1,
  184.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  185.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  186. };
  187.  
  188.  
  189. enum {
  190.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  191.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  192.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  193.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  194. };
  195.  
  196. /* portListFlags for DM_NewDevicePortList */
  197.  
  198. enum {
  199.                                                                 /* Should offline devices be put into the port list (such as dummy display) */
  200.     kPLIncludeOfflineDevicesBit    = 0
  201. };
  202.  
  203. typedef unsigned long DMFidelityType;
  204. /*
  205.  AVID is an ID for ports and devices the old DisplayID type
  206.     is carried on for compatibility
  207. */
  208. typedef unsigned long AVIDType;
  209. typedef AVIDType DisplayIDType;
  210. typedef void *DMListType;
  211. typedef unsigned long DMListIndexType;
  212. typedef VDPowerStateRec AVPowerStateRec;
  213. typedef VDPowerStateRec *AVPowerStatePtr;
  214. struct DMComponentListEntryRec {
  215.     DisplayIDType                     itemID;                        /* DisplayID Manager*/
  216.     Component                         itemComponent;                /* Component Manager*/
  217.     ComponentDescription             itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  218.  
  219.     ResType                         itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  220.     DMFidelityType                     itemFidelity;                /* How good is this item for the specified search?*/
  221.     ResType                         itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  222.     Point                             itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  223.  
  224.     unsigned long                     itemFlags;                    /* Set to 0 (future expansion)*/
  225.     ResType                         itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  226.     unsigned long                     itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  227.     unsigned long                     itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  228.     unsigned long                     itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  229.     unsigned long                     itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  230. };
  231. typedef struct DMComponentListEntryRec DMComponentListEntryRec;
  232.  
  233. typedef DMComponentListEntryRec *DMComponentListEntryPtr;
  234. /* *** Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  235. struct AVLocationRec {
  236.     unsigned long                     locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  237. };
  238. typedef struct AVLocationRec AVLocationRec;
  239.  
  240. typedef AVLocationRec *AVLocationPtr;
  241. struct DMDepthInfoRec {
  242.     VDSwitchInfoPtr                 depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  243.     VPBlockPtr                         depthVPBlock;                /* VPBlock (including size, depth and format) */
  244.     unsigned long                     depthFlags;                    /* Reserved */
  245.     unsigned long                     depthReserved1;                /* Reserved */
  246.     unsigned long                     depthReserved2;                /* Reserved */
  247. };
  248. typedef struct DMDepthInfoRec DMDepthInfoRec;
  249.  
  250. typedef DMDepthInfoRec *DMDepthInfoPtr;
  251. struct DMDepthInfoBlockRec {
  252.     unsigned long                     depthBlockCount;            /* How many depths are there? */
  253.     DMDepthInfoPtr                     depthVPBlock;                /* Array of DMDepthInfoRec */
  254.     unsigned long                     depthBlockFlags;            /* Reserved */
  255.     unsigned long                     depthBlockReserved1;        /* Reserved */
  256.     unsigned long                     depthBlockReserved2;        /* Reserved */
  257. };
  258. typedef struct DMDepthInfoBlockRec DMDepthInfoBlockRec;
  259.  
  260. typedef DMDepthInfoBlockRec *DMDepthInfoBlockPtr;
  261. struct DMDisplayModeListEntryRec {
  262.     unsigned long                     displayModeFlags;
  263.     VDSwitchInfoPtr                 displayModeSwitchInfo;
  264.     VDResolutionInfoPtr             displayModeResolutionInfo;
  265.     VDTimingInfoPtr                 displayModeTimingInfo;
  266.     DMDepthInfoBlockPtr             displayModeDepthBlockInfo;    /* Information about all the depths*/
  267.     Ptr                             displayModeReserved1;        /* Reserved*/
  268.     StringPtr                         displayModeName;            /* Name of the timing mode*/
  269. };
  270. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  271.  
  272. typedef DMDisplayModeListEntryRec *DMDisplayModeListEntryPtr;
  273. struct DependentNotifyRec {
  274.     ResType                         notifyType;                    /* What type was the engine that made the change (may be zero)*/
  275.     ResType                         notifyClass;                /* What class was the change (eg geometry, color etc)*/
  276.     DisplayIDType                     notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  277.     ComponentInstance                 notifyComponent;            /* What engine did it (may be 0)?*/
  278.  
  279.     unsigned long                     notifyVersion;                /* Set to 0 (future expansion)*/
  280.     unsigned long                     notifyFlags;                /* Set to 0 (future expansion)*/
  281.     unsigned long                     notifyReserved;                /* Set to 0 (future expansion)*/
  282.     unsigned long                     notifyFuture;                /* Set to 0 (future expansion)*/
  283. };
  284. typedef struct DependentNotifyRec DependentNotifyRec;
  285.  
  286. typedef DependentNotifyRec *DependentNotifyPtr;
  287. /* Exports to support Interfaces library containing unused calls */
  288. typedef pascal void (*DMNotificationProcPtr)(AppleEvent *theEvent);
  289. typedef pascal void (*DMExtendedNotificationProcPtr)(void *userData, short theMessage, void *notifyData);
  290. typedef pascal void (*DMComponentListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  291. typedef pascal void (*DMDisplayModeListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  292.  
  293. #if GENERATINGCFM
  294. typedef UniversalProcPtr DMNotificationUPP;
  295. typedef UniversalProcPtr DMExtendedNotificationUPP;
  296. typedef UniversalProcPtr DMComponentListIteratorUPP;
  297. typedef UniversalProcPtr DMDisplayModeListIteratorUPP;
  298. #else
  299. typedef DMNotificationProcPtr DMNotificationUPP;
  300. typedef DMExtendedNotificationProcPtr DMExtendedNotificationUPP;
  301. typedef DMComponentListIteratorProcPtr DMComponentListIteratorUPP;
  302. typedef DMDisplayModeListIteratorProcPtr DMDisplayModeListIteratorUPP;
  303. #endif
  304.  
  305. enum {
  306.     uppDMNotificationProcInfo = kPascalStackBased
  307.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(AppleEvent *))),
  308.     uppDMExtendedNotificationProcInfo = kPascalStackBased
  309.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void *)))
  310.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  311.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *))),
  312.     uppDMComponentListIteratorProcInfo = kPascalStackBased
  313.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void *)))
  314.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  315.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMComponentListEntryPtr))),
  316.     uppDMDisplayModeListIteratorProcInfo = kPascalStackBased
  317.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void *)))
  318.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  319.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMDisplayModeListEntryPtr)))
  320. };
  321.  
  322. #if GENERATINGCFM
  323. #define NewDMNotificationProc(userRoutine)        \
  324.         (DMNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  325. #define NewDMExtendedNotificationProc(userRoutine)        \
  326.         (DMExtendedNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  327. #define NewDMComponentListIteratorProc(userRoutine)        \
  328.         (DMComponentListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  329. #define NewDMDisplayModeListIteratorProc(userRoutine)        \
  330.         (DMDisplayModeListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  331. #else
  332. #define NewDMNotificationProc(userRoutine)        \
  333.         ((DMNotificationUPP) (userRoutine))
  334. #define NewDMExtendedNotificationProc(userRoutine)        \
  335.         ((DMExtendedNotificationUPP) (userRoutine))
  336. #define NewDMComponentListIteratorProc(userRoutine)        \
  337.         ((DMComponentListIteratorUPP) (userRoutine))
  338. #define NewDMDisplayModeListIteratorProc(userRoutine)        \
  339.         ((DMDisplayModeListIteratorUPP) (userRoutine))
  340. #endif
  341.  
  342. #if GENERATINGCFM
  343. #define CallDMNotificationProc(userRoutine, theEvent)        \
  344.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMNotificationProcInfo, (theEvent))
  345. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        \
  346.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  347. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        \
  348.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  349. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        \
  350.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  351. #else
  352. #define CallDMNotificationProc(userRoutine, theEvent)        \
  353.         (*(userRoutine))((theEvent))
  354. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        \
  355.         (*(userRoutine))((userData), (theMessage), (notifyData))
  356. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        \
  357.         (*(userRoutine))((userData), (itemIndex), (componentInfo))
  358. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        \
  359.         (*(userRoutine))((userData), (itemIndex), (displaymodeInfo))
  360. #endif
  361. /* Trap interfaces */
  362. extern pascal GDHandle DMGetFirstScreenDevice(Boolean activeOnly)
  363.  TWOWORDINLINE(0x7000, 0xABEB);
  364.  
  365. extern pascal GDHandle DMGetNextScreenDevice(GDHandle theDevice, Boolean activeOnly)
  366.  TWOWORDINLINE(0x7001, 0xABEB);
  367.  
  368. extern pascal void DMDrawDesktopRect(Rect *globalRect)
  369.  TWOWORDINLINE(0x7002, 0xABEB);
  370.  
  371. extern pascal void DMDrawDesktopRegion(RgnHandle globalRgn)
  372.  TWOWORDINLINE(0x7003, 0xABEB);
  373.  
  374. extern pascal OSErr DMBeginConfigureDisplays(Handle *displayState)
  375.  THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  376.  
  377. extern pascal OSErr DMEndConfigureDisplays(Handle displayState)
  378.  THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  379.  
  380. extern pascal OSErr DMAddDisplay(GDHandle newDevice, short driver, unsigned long mode, unsigned long reserved, unsigned long displayID, Component displayComponent, Handle displayState)
  381.  THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  382.  
  383. extern pascal OSErr DMMoveDisplay(GDHandle moveDevice, short x, short y, Handle displayState)
  384.  THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  385.  
  386. extern pascal OSErr DMDisableDisplay(GDHandle disableDevice, Handle displayState)
  387.  THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  388.  
  389. extern pascal OSErr DMEnableDisplay(GDHandle enableDevice, Handle displayState)
  390.  THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  391.  
  392. extern pascal OSErr DMRemoveDisplay(GDHandle removeDevice, Handle displayState)
  393.  THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  394.  
  395. extern pascal OSErr DMSetMainDisplay(GDHandle newMainDevice, Handle displayState)
  396.  THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  397.  
  398. extern pascal OSErr DMSetDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long *depthMode, unsigned long reserved, Handle displayState)
  399.  THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  400.  
  401. extern pascal OSErr DMCheckDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long depthMode, unsigned long *switchFlags, unsigned long reserved, Boolean *modeOk)
  402.  THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  403.  
  404. extern pascal OSErr DMGetDeskRegion(RgnHandle *desktopRegion)
  405.  THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  406.  
  407. extern pascal OSErr DMRegisterNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  408.  THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  409.  
  410. extern pascal OSErr DMRemoveNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  411.  THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  412.  
  413. extern pascal OSErr DMQDIsMirroringCapable(Boolean *qdIsMirroringCapable)
  414.  THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  415.  
  416. extern pascal OSErr DMCanMirrorNow(Boolean *canMirrorNow)
  417.  THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  418.  
  419. extern pascal OSErr DMIsMirroringOn(Boolean *isMirroringOn)
  420.  THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  421.  
  422. extern pascal OSErr DMMirrorDevices(GDHandle gD1, GDHandle gD2, Handle displayState)
  423.  THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  424.  
  425. extern pascal OSErr DMUnmirrorDevice(GDHandle gDevice, Handle displayState)
  426.  THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  427.  
  428. extern pascal OSErr DMGetNextMirroredDevice(GDHandle gDevice, GDHandle *mirroredDevice)
  429.  THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  430.  
  431. extern pascal OSErr DMBlockMirroring(void )
  432.  TWOWORDINLINE(0x701C, 0xABEB);
  433.  
  434. extern pascal OSErr DMUnblockMirroring(void )
  435.  TWOWORDINLINE(0x701D, 0xABEB);
  436.  
  437. extern pascal OSErr DMGetDisplayMgrA5World(Ptr *dmA5)
  438.  THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  439.  
  440. extern pascal OSErr DMGetDisplayIDByGDevice(GDHandle displayDevice, DisplayIDType *displayID, Boolean failToMain)
  441.  THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  442.  
  443. extern pascal OSErr DMGetGDeviceByDisplayID(DisplayIDType displayID, GDHandle *displayDevice, Boolean failToMain)
  444.  THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  445.  
  446. extern pascal OSErr DMSetDisplayComponent(GDHandle theDevice, Component displayComponent)
  447.  THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  448.  
  449. extern pascal OSErr DMGetDisplayComponent(GDHandle theDevice, Component *displayComponent)
  450.  THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  451.  
  452. extern pascal OSErr DMNewDisplay(GDHandle *newDevice, short driverRefNum, unsigned long mode, unsigned long reserved, DisplayIDType displayID, Component displayComponent, Handle displayState)
  453.  THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  454.  
  455. extern pascal OSErr DMDisposeDisplay(GDHandle disposeDevice, Handle displayState)
  456.  THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  457.  
  458. extern pascal OSErr DMResolveDisplayComponents(void )
  459.  TWOWORDINLINE(0x7025, 0xABEB);
  460.  
  461. extern pascal OSErr DMRegisterExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, unsigned short nofifyOnFlags, ProcessSerialNumberPtr whichPSN)
  462.  THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  463.  
  464. extern pascal OSErr DMRemoveExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, ProcessSerialNumberPtr whichPSN, unsigned short removeFlags)
  465.  THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  466.  
  467. extern pascal OSErr DMNewAVPanelList(DisplayIDType displayID, ResType panelType, DMFidelityType minimumFidelity, unsigned long panelListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  468.  THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  469.  
  470. extern pascal OSErr DMNewAVEngineList(DisplayIDType displayID, ResType engineType, DMFidelityType minimumFidelity, unsigned long engineListFlags, unsigned long reserved, DMListIndexType *engineCount, DMListType *engineList)
  471.  THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  472.  
  473. extern pascal OSErr DMNewAVDeviceList(ResType deviceType, unsigned long deviceListFlags, unsigned long reserved, DMListIndexType *deviceCount, DMListType *deviceList)
  474.  THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  475.  
  476. extern pascal OSErr DMNewAVPortListByPortType(ResType subType, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  477.  THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  478.  
  479. extern pascal OSErr DMGetIndexedComponentFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMComponentListIteratorUPP listIterator, void *userData)
  480.  THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  481.  
  482. extern pascal OSErr DMDisposeList(DMListType panelList)
  483.  THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  484.  
  485. extern pascal OSErr DMGetNameByAVID(AVIDType theID, unsigned long nameFlags, Str255 name)
  486.  THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  487.  
  488. extern pascal OSErr DMNewAVIDByPortComponent(Component thePortComponent, ResType portKind, unsigned long reserved, AVIDType *newID)
  489.  THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  490.  
  491. extern pascal OSErr DMGetPortComponentByAVID(DisplayIDType thePortID, Component *thePortComponent, ComponentDescription *theDesciption, ResType *thePortKind)
  492.  THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  493.  
  494. extern pascal OSErr DMSendDependentNotification(ResType notifyType, ResType notifyClass, AVIDType displayID, ComponentInstance notifyComponent)
  495.  THREEWORDINLINE(0x303C, 0x0830, 0xABEB);
  496.  
  497. extern pascal OSErr DMDisposeAVComponent(Component theAVComponent)
  498.  THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  499.  
  500. extern pascal OSErr DMSaveScreenPrefs(unsigned long reserved1, unsigned long saveFlags, unsigned long reserved2)
  501.  THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  502.  
  503. extern pascal OSErr DMNewAVIDByDeviceComponent(Component theDeviceComponent, ResType portKind, unsigned long reserved, DisplayIDType *newID)
  504.  THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  505.  
  506. extern pascal OSErr DMNewAVPortListByDeviceAVID(AVIDType theID, DMFidelityType minimumFidelity, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  507.  THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  508.  
  509. extern pascal OSErr DMGetDeviceComponentByAVID(AVIDType theDeviceID, Component *theDeviceComponent, ComponentDescription *theDesciption, ResType *theDeviceKind)
  510.  THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  511.  
  512. extern pascal OSErr DMNewDisplayModeList(DisplayIDType displayID, unsigned long modeListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  513.  THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  514.  
  515. extern pascal OSErr DMGetIndexedDisplayModeFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMDisplayModeListIteratorUPP listIterator, void *userData)
  516.  THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  517.  
  518. extern pascal OSErr DMGetGraphicInfoByAVID(AVIDType theID, PicHandle *theAVPcit, Handle *theAVIconSuite, AVLocationRec *theAVLocation)
  519.  THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  520.  
  521. extern pascal OSErr DMGetAVPowerState(AVIDType theID, AVPowerStatePtr getPowerState, unsigned long reserved1)
  522.  THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  523.  
  524. extern pascal OSErr DMSetAVPowerState(AVIDType theID, AVPowerStatePtr setPowerState, unsigned long powerFlags, Handle displayState)
  525.  THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  526.  
  527. extern pascal OSErr DMGetDeviceAVIDByPortAVID(AVIDType portAVID, AVIDType *deviceAVID)
  528.  THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  529.  
  530. extern pascal OSErr DMGetEnableByAVID(AVIDType theAVID, Boolean *isAVIDEnabledNow, Boolean *canChangeEnableNow)
  531.  THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  532.  
  533. extern pascal OSErr DMSetEnableByAVID(AVIDType theAVID, Boolean doEnable, Handle displayState)
  534.  THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  535.  
  536. extern pascal OSErr DMGetDisplayMode(GDHandle theDevice, VDSwitchInfoPtr switchInfo)
  537.  THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  538.  
  539. #endif
  540.  
  541. #if PRAGMA_ALIGN_SUPPORTED
  542. #pragma options align=reset
  543. #endif
  544.  
  545. #if PRAGMA_IMPORT_SUPPORTED
  546. #pragma import off
  547. #endif
  548.  
  549. #ifdef __cplusplus
  550. }
  551. #endif
  552.  
  553. #endif /* __DISPLAYS__ */
  554.  
  555.